APPARATUS, SYSTEM AND METHOD FOR THE TRANSMISSION OF DATA WITH DIFFERENT QoS ATTRIBUTES

ABSTRACT

An apparatus, system and method are provided for transmitting data from logical channel queues over a telecommunications link, each of the logical channel queues capable of being associated with quality of service attributes, the method including determining available resources for transmission over the telecommunications link in a frame; selecting one of the logical channel queues based on a first one of the quality of service attributes; packaging data from the selected one of the logical channel queues until one of: a second one of the quality of service attributes for the selected one of the logical channel queues is satisfied, the available resources are used, or the selected one of the logical channel queues is empty; and repeating the selecting step and the packaging step for remaining ones of the logical channel queues.

CROSS-REFERENCE

This application is a continuation of U.S. patent application Ser. No.16/692,729, filed Nov. 22, 2019, which is a continuation of U.S. patentapplication Ser. No. 16/025,504, filed Jul. 2, 2018, now U.S. Pat. No.10,779,288, which is a continuation of U.S. patent application Ser. No.15/456,218, filed on Mar. 10, 2017, now U.S. Pat. No. 10,045,356; whichis a continuation of U.S. patent application Ser. No. 15/229,869, filedon Aug. 5, 2016, now U.S. Pat. No. 9,603,159; which is a continuation ofU.S. Ser. No. 14/506,510, filed on Oct. 3, 2014, now U.S. Pat. No.9,426,816; which is a continuation of U.S. patent application Ser. No.14/292,380, filed on May 30, 2014, now U.S. Pat. No. 8,867,351; which isa continuation of U.S. patent application Ser. No. 14/102,120, filed onDec. 10, 2013, now U.S. Pat. No. 8,817,805; which is a continuation ofU.S. patent application Ser. No. 13/468,925, filed May 10, 2012, nowU.S. Pat. No. 8,630,238; which is a continuation of U.S. patentapplication Ser. No. 12/028,365, filed Feb. 8, 2008, now U.S. Pat. No.8,184,661; which is a continuation of U.S. patent application Ser. No.10/521,581, filed Jan. 18, 2005, now U.S. Pat. No. 7,333,435, thecontents of which are incorporated herein by reference in theirentireties.

FIELD

The present disclosure relates to an apparatus, system and method fortransmitting data flows that have different quality of service (QoS)attributes over a network link. More specifically, the presentdisclosure relates to an apparatus, system and method for providing andmanaging QoS for data flows transmitted over at least one link in a datanetwork capable of transmitting data with different QoS requirementsand/or attributes.

BACKGROUND

One of the most ubiquitous data networks to date has been the Internetwhich is a packet data network employing the Internet Protocol (IP) asits network layer protocol. IP provides many advantages as a networklayer protocol, including robustness and simplicity of implementationand one of its original principles is that the network layer need notknow anything about the contents of the packets it transmits. In otherwords, to IP, a packet was a packet was a packet. Similarly, IP isintended to work independently of the physical layer of the network. Inother words, IP is ignorant of whether the network it is operating overis an optical network or a wireline network, etc.

More recently, much effort has been spent in creating converged networkswherein diverse types of data can be handled by a single network. Forexample, packet data networks are now often able to carry voice(telephony) data, “pure” data (such as data file transfers, emails,etc.), fax data, streaming video, video conferencing, etc. Many of theseconverged networks also employ IP as their network protocol.

While IP continues to be the network layer protocol of choice for manymodern networks, data from different user applications in a convergednetwork can require different transmission characteristics to beprovided for them. For example, data packets from and/or to telephonyvoice coders require relatively low end-to-end transmission latencies,but can accommodate relatively high error rates and/or dropped packets.In contrast, data packets from a file transfer protocol (FTP) sessioncan accommodate relatively long latencies, but cannot well accommodateerrors or dropped packets. Data packets carrying fax data using the T.38protocol require both low latency and low error rates. The specificrequirements for the acceptable transmission of the contents of a datapacket are generally referred to as the required quality of service(QoS) for the data. As originally designed, IP did not contemplateproviding different QoS levels for packets.

To provide some measure of QoS control in IP, the fourth version of theprotocol, typically referred to as IPv4, provided a Type of Service(TOS) byte in the standard IP header, as defined in ETF RFC 791 (1981)(available from www.ietf.org). The first three bits (0 to 2) of the TOSbyte represent a precedence field with eight defined values(specifically, “Network Control”, “Internetwork Control”, “CRITIC/ECP”,“Flash Override”, “Flash”, “Immediate”, “Priority” and “Routine”). Apartfrom Router Table updates and similar networking functions, theprecedence bits are not widely used in most networks today.

The next four bits (bits 3 to 6—typically referred to as the TOS bits)of the TOS byte represent flags indicating a desired type of service andthe last bit (bit 7) is left blank. The TOS bits essentially act asflags to request from the network service levels to: minimize delay;maximize throughput; maximize reliability; or minimize monetary cost. Anapplication can set any one of the four TOS bits as desired or, if noneare set, it is assumed that normal service is desired. Suggestedsettings of the TOS bits for common applications were described in IETFRFC 1600 (Reynolds and Postel, 1992) and IETF RFC 1609 (Almquist, 1992).As specific examples, it is recommended in these documents that FTPcontrol packets have the minimize delay bit set, that FTP data packetshave the maximize throughput bit set and that usenet (NNTP) packets havethe minimize monetary cost bit set.

While TOS provides some ability to provide QoS, it is very limited.Accordingly, many other attempts have been made to provide QoSmechanisms for IP. For example, RSVP has been proposed as a mechanismfor providing QoS assurance in an IP network. Essentially, RSVP reservesresources from network components to provide virtual connections throughthe otherwise connectionless IP network. RSVP suffers from difficultiesin that it is not yet broadly supported and that, even when supported,it assumes that sufficiently large amounts of network resources(bandwidth, etc.) are available to permit some of these resources to bereserved for specific users and/or applications and it can result ininefficient use of these resources.

Additional problems exist when trying to provide QoS over an IP networkthat is implemented on a physical layer with higher error probabilities.Specifically, IP was designed for, and assumes, a reliable physicallayer, such as wired Ethernet or the like where congestion may be aproblem, but where large amounts of generally reliable bandwidth areavailable. To date, implementing QoS-enabled IP based networks over lessreliable physical layers, such as radio channels, has been difficult.

Further, to date most attempts at implementing QoS for IP networks havetaken an end to end approach and have not addressed networks withheterogeneous physical layers, such as networks with both wired andradio links. Different physical layers can result in much different QoSmechanisms being required.

Also, in radio systems, such as that proposed by the third generationpartnership project (3GPP), QoS must typically be provided at thephysical layer of the system, requiring different channels to providedifferent QoS levels. Obviously, this can severely limit the range ofQoS offerings that can be provided in a network.

It is desired to have a broadly QoS-enabled IP network which can operateon a variety of physical layers, including relatively unreliable layerssuch as radio channels, and/or in networks with heterogeneous physicallinks.

SUMMARY

An apparatus, system and method for transmitting data flows havingdifferent quality of service (QoS) attributes over a network linkstructured in two or more channels is provided. The method classifiesarriving packets to determine their required/assigned QoS attributes andplaces the classified packets into one of several logical channelqueues, the selected logical channel queue having an appropriatecorresponding set of QoS attributes defined. A radio link controllerexamines the available channels and, for each channel, selects a logicalchannel queue whose contents will be transmitted thereon. The radio linkcontroller determines the data transmission capacity for each channeland segments the contents of the selected logical channel to fit withinthe determined capacity. The selection of the logical channel queue isperformed in accordance with the set of QoS attributes and thus eachflow can have different QoS characteristics including priorities,reliabilities (ARQ, no ARQ, etc.).

The present disclosure provides a novel apparatus, system and method fortransmitting at least two data flows over a telecommunications linkstructured into at least two channels, each data flow having differentQoS attributes which obviates or mitigates at least one of theabove-identified disadvantages of the prior art.

According to a first aspect of the present disclosure, there is provideda method of transmitting at least two data flows over atelecommunications link, wherein each data flow can have a different setof quality of service attributes defined for it, comprising the stepsof: (i) receiving a packet for transmission over said link; (ii)examining said packet to determine an appropriate set of quality ofservice attributes required for it; (iii) placing said examined packetinto one of a plurality of logical channel queues, said one logicalchannel queue having defined therefor quality of service attributescorresponding to the determined quality of service attributes requiredfor said packet; (iv) determining a data transmission capacity for saidlink and selecting one of said plurality of logical channel queues whichholds data to be transmitted with the highest priority for transmissionand packaging and transmitting as much data from said logical channelqueue as can be packaged to fit within said determined transmissioncapacity of said channel; and (v) repeating steps (i) through (iii) andstep (iv) as necessary.

Preferably, the telecommunications link is structured into two or morechannels, each of which can have different amounts of data transmissioncapacity and each of the logical channel queues can be assigned to oneor more of the channels. In this case, the determined data transmissioncapacity is determined for each channel and, for each channel, one ofthe assigned logical channel queues is selected for transmission. Alsopreferably, each of the channels can be either a dedicated channel,between a pair of endpoints, or a broadcast channel between an endpointand a plurality of other endpoints. Also preferably, for one to manyendpoint configurations, a set of logical channel queues is defined atthe one endpoint for transmissions to each of the many endpoints.

According to another aspect of the present disclosure, there is provideda system for the transmission of data flows from a first endpoint to oneor more of a plurality of other endpoints through a link where each flowcan have different quality of service attributes defined therefor,comprising: (i) a network interface at said first endpoint to receivepackets from said data flows for transmission through said link to saidother endpoints; (ii) a set of logical channel queues, each of saidlogical channel queues in said set being operable to queue a receivedpacket and having a set of defined quality of service attributes definedfor the contents of the queue; (iii) a packet classifier to examine saidreceived packets to determine the quality of service attributes for saidpacket and to place received packets into selected ones of said logicalchannel queues with corresponding quality of service attributes; and(iv) a link controller which determines the available data transmissioncapacity to said plurality of end points and which selects fortransmission a portion of a packet from the logical channel queue whosecontents have the highest priority, the link controller segmenting thepacket as necessary to have the portion fit within the data transmissioncapacity of said link.

Preferably, the system maintains a set of logical channel queues at thefirst end point for each of said plurality of other endpoints. Alsopreferably, the link is structured into two or more channels and thelink controller selects, for each of the at least two channels, aportion of a packet from a logical channel queue for transmission to atleast one of the plurality of endpoints. Also preferably, at least oneof these least two channels is a dedicated channel between the first endpoint and one of the plurality of endpoints and another of the at leasttwo channels is a broadcast channel from the first endpoint to at leasttwo or more of the plurality of other endpoints. Also preferably, thelink controller is operable to change the structure of each dedicatedchannel to alter its data transmission capacity to meet the needs of theendpoints.

The present disclosure provides for the efficient utilization of ashared resource, such as a radio link, in a network includingheterogeneous links. Data is organized in flows and each flow can beprovided with its own logical channel with its own set of QoSattributes. These attributes can include prioritization, latencyrestrictions, data rate requirements, reliability requirements, etc.Data flows with wildly different quality of service attributes can bemultiplexed onto a single link, which can have variable datatransmission capacities, and the necessary differentiated quality ofservice for these flows can be efficiently provided. The range and/ortypes of attributes are not particularly limited and can includeattributes such as: whether ARQ is to be provided; whether headercompression is to be performed; priority; tolerance or intolerance tolatency; etc.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present disclosure will now be described,by way of example only, with reference to the attached Figures, wherein:

FIG. 1 shows a schematic representation of a network and connected endusers, the network being heterogeneous and comprising wireline and radiotelecommunications links;

FIG. 2 shows end user terminals connected to a schematic representationof a CPE;

FIG. 3 shows a schematic representation of a QoS processor at a basestation, including multiple prioritization and queuing engines;

FIG. 4 is a flowchart representing the steps performed within the QoSprocessor upon receipt of a packet for transmission;

FIG. 5 is a flowchart representing the steps performed by a Radio LinkController to select and transmit a segment of a packet;

FIG. 6 shows a plot of transmitted packet segments of differentpriorities;

FIG. 7 shows a reassembly controller; and

FIG. 8 shows a schematic representation of a prioritization and queuingengine at a CPE.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

A telecommunication system 20 is illustrated in FIG. 1 and comprises avariety of end user data 24 and telephony 28 terminals connected by anetwork 32. Network 32 can be any suitable telecommunications network,such as a packet network implemented using IP and running on a wirelineor optical backbone, etc.

As illustrated, some terminals can be connected to network 32 via wiredlinks 36 such as, for example, T1, xDSL, cable modem, dial up, fiberoptic systems, etc. Other terminals can be connected via wireless links40 that extend between radio base stations 44 and subscriber stations,such as customer premises equipment (CPE) 48, to which the terminals areconnected. The base station 44 and subscriber stations can be componentsof any radio transmission system suitable for the transmission of dataand, in a present embodiment, is the ATMOSPHERE™ system manufactured andsold by the assignee of the present disclosure. The ATMOSPHERE systememploys wideband CDMA between NPM base stations and SOMAport™ CPEs andprovides for the fully converged transport of data from CPEs 48, over ashared wireless link 40, to base stations 44 and to and from corenetwork 32 via a backhaul 52. Backhaul 52 can be any suitable backhaullink including, but not limited to, T3, OC3, microwave or othertelecommunications links.

FIG. 2 shows a schematic representation of one possible embodiment ofCPE 48 in system 20. As shown, CPE 48 includes a microprocessor assembly50 that includes one or more input/output ports allowing data terminals24 to be connected to CPE 48. Similarly, CPE 48 includes a subscriberline interface circuit (SLIC) assembly 54 that provides one or morestandard RJ-11 ports, or other suitable interfaces, to connect one ormore telephony devices 28 to CPE 48. SLIC assembly 54 also includes A/Dand D/A converters, as well as any desired voice codecs, to connecttelephony devices 28 to microprocessor assembly 50. CPE 48 can also actas a wireless access point for wireless communication to and from enduser terminals within the customer's premises, via any appropriatetechnology including, but not limited to, 802.11a, 802.11b or 802.11gradio access points, a Bluetooth transceiver, infrared transceiver, orany other suitable technology as will occur to those of skill in theart. Other embodiments of CPE 48 will occur to those of skill in theart, including PCMCIA or other form factor devices that can beconnected, or installed in, various user terminals and which can operatein nomadic or mobile applications.

As shown, microprocessor assembly 50 connects, via a modem 60, to aradio transceiver 64 which is, in turn, connected to antenna 68. Data isreceived over radio link 40 from a base station 44, via antenna 68, andis amplified by radio 64 and demodulated/decoded by modem 60 whichprovides the resulting data to microprocessor assembly 50.Microprocessor assembly 50 either acts on the received data, if it is acontrol signal, or passes the data, in the appropriate format, to theappropriate data terminal 24 or to telephony device 28 via SLIC assembly54.

Similarly, data is received by microprocessor assembly 50 from a dataterminal 24 or telephony terminal 28, via SLIC assembly 54, and ismodulated and encoded by modem 60, amplified by radio 64 andtransmitted, via antenna 68, over radio link 40 to base station 44.

As will be apparent, radio link 40 is subject to a variety of conditionsand/or restrictions. For example, typically only a limited amount ofradio spectrum (bandwidth) is available for use by radio link 40 andthis bandwidth must be shared between all CPEs 48. Also, typically thetotal amount of data capacity available from the base station 44 toindividual CPEs 48 (the downlink) is significantly higher than the datacapacity available from CPEs 48 to base station 44 (the uplink). Forexample, an aggregate rate of twelve megabits per second (mbps) may beavailable in the downlink while the uplink may be limited to one mbps,or less.

Further, the radio path characteristics between individual CPEs 48 and abase station 44 will vary widely due both to radio propagation factors(distance, orientation, etc.) and due to variations with time (fading,localized interference sources, etc.). Thus, any given CPE 48 willexperience radio path characteristics at some times which allow it toreceive or send data at some maximum rate (e.g.—five megabits persecond) and will experience radio path characteristics at other timeswhich only allow it to receive or send data at some minimum rate(e.g.—five hundred thousand bits per second) and each CPE 48 willexperience radio path characteristics between each of these extremes atother times. Accordingly, system 20 must be able effectively use thecapacity of radio link 40 even though that capacity will change withtime and, in particular, the capacity between individual CPEs 48 andbase station 44 can experience significant changes over time.

Also, as radio channels are generally more prone to transmission errorsthan some other physical media, such as wireline links, it is necessaryto appropriately format data for transmission over radio channels,hereinafter referred to as “packaging” of the data. This packaging caninclude employing error-correcting codes, interleaving the data,selecting the modulation employed, etc. One of the consequences of thispackaging is that, typically, the maximum size of the physical layertransport block (i.e.—the largest amount of data that can be transmittedby the physical layer in a time period, such as a single frame) of aradio channel is smaller than would be the case for wirelinetransmissions. For example, in a wireline network the transport blockfor an Ethernet system can be fifteen hundred bytes or more in size,while in the above-mentioned ATMOSPHERE system, the transport block maybe only eleven bytes at minimum on the uplink (CPE 48 to base station44) and nineteen bytes at minimum on the downlink (base station 44 toCPE 48). Also, rather than transmitting large packets which may have agreater probability of encountering a transmission error, it can beadvantageous to transmit smaller packets which can have a reducedprobability of experiencing an error and which, in the event of anerror, can be retransmitted in less bandwidth than a larger packet wouldrequire. Thus, packets from a wireline system and/or a user terminalwill usually require fragmentation prior to transmission over radio link40.

While fragmentation is employed in conventional IP systems whennecessary, reassembly of fragmented packets is not typically performeduntil the packets arrive at their final destination. Further, theoverhead (headers, etc.) in performing fragmentation can make it veryexpensive, in terms of efficient use of bandwidth and resources, toimplement even when it is required. As will be described in detailbelow, in the present disclosure little overhead is required forsegmentation of packets and reassembly of segmented packets to thepre-segmentation transport block size can be performed when the segmentsare received at the end of radio link 40.

Thus, effective use of the radio link 40 requires management of alimited, shared, resource where the capabilities of individual terminalsto use that resource can vary widely over time and where thefragmentation of data packets will be the norm. On top of these issues,if QoS is required for the data an extra degree of complexity must beincluded.

FIG. 3 shows the QoS processor 100 that runs at base stations 44 insystem 20. A separate QoS processor 100 is available for each sharedradio link 40, which in the above-mentioned AMOSPHERE system means thateach radio sector in a multi-sector base station 44 has its own QoSprocessor 100. QoS processor 100 includes a network interface port104.sub.x for each CPE 48.sub.x it serves, through which information tobe transmitted to the respective CPE 48.sub.x is delivered. Each networkinterface port 104 feeds into a respective prioritization and queuingengine (PQE) 108.sub.x, each of which in turn includes a data classifier112 and a set of logical channel queues LC.sub.0 to LC.sub.i. In theillustrated embodiment of the disclosure, each PQE 108 includes sixteenlogical channel queues, specifically, LC.sub.0 through LC.sub.15.Logical channel queues LC.sub.i comprise queues of packets to betransmitted, where each entry in a queue holds one packet. The size ofthe packets placed into the queues of different logical channel queuesLC.sub.i can differ as necessary. For example, a voice telephony datapacket may be twenty bytes while a web browsing session data packet canbe several hundred bytes or more.

As each packet arrives at a network interface port 104.sub.x, classifier112.sub.x examines the packet to route it to an appropriate one of theup to sixteen logical channel queues LC.sub.i in PQE 108.sub.x.Classifier 112.sub.x can perform the classification based upon a varietyof factors, including: the IP header TOS field contents; the sourceand/or destination IP addresses and ports; the payload type (if known);payload length; etc.

Typically, each data flow from a base station 44 to a CPE 48, or viceversa, is assigned to a different logical channel queue LC.sub.i andeach logical channel queue LC.sub.i has an appropriate priority and setof QoS attributes defined for it. A data flow can be any communicationneed served by the network, for example a web browsing session can beone flow, while each of two telephony calls can be other flows and afile transfer can be a fourth flow. As used herein, and as discussedfurther below, the term “QoS attributes” can include a wide variety ofattributes including, but not limited to: traffic shaping; segmentationprohibition; priority; data rate; latency; reliability; headercompression techniques, probability of block errors; etc.

For example: LC.sub.0 and LC.sub.1 can be defined with the low latency,high error tolerance, header compression QoS attributes suitable forvoice data, if two voice connections are being provided between the basestation 44 and a CPE 48; LC.sub.2 can be defined with the moderatetolerance for latency, low error tolerance QoS attributes appropriate toa web browsing session; LC.sub.3 can be defined with suitable QoSattributes (tolerance for high latency and low tolerance for errors,i.e.—ARQ enabled) for email; LC.sub.4 can be defined with appropriateQoS attributes for streaming media, such as video; LC.sub.5 can bedefined with QoS attributes suitable for system control and messagingsignals; and LC.sub.6 can be defined with the low latency, low errortolerance QoS attributes suitable for fax data using the T.38 protocol,etc. Logical channel queues can be instantiated as needed and the QoSattributes can be defined and/or modified as required, as discussedfurther below.

FIG. 4 shows a flowchart of the above-described process. At step 120, apacket is received at a PQE 108 from network interface port 104 and isclassified by classifier 112. Classifier 112 determines the appropriateQoS attributes for the received packet. At step 124, classifier 112determines if a logical channel queue LC is available for the packet andif such a logical channel queue is not available, the method creates therequired logical channel queue at step 128, either by creating a newlogical channel queue with the necessary QoS attributes, or by modifyingthe QoS attributes of an existing, empty, logical channel queue. Whenthe required logical channel queue is available, the method enqueues thereceived packet at step 132.

As described below, each logical channel queue LC.sub.i performsprioritized scheduling of packets enqueued in it and data is transmittedfrom the logical channel queue LC.sub.i in a non-preemptive manner.Specifically, as each packet is added to a logical channel queue, itspriority, relative to the already enqueued packets, is determined. Thehighest priority packet in the queue is selected for transmission and,as described below, once transmission is commenced, transmission of thispacket is not interrupted by other packets in the logical channel queueLC.sub.i, even if a higher priority packet is subsequently enqueued.

Logical channel queues LC.sub.i make their enqueued data available to aRadio Link Controller (RLC) 140. RLC 140 identifies radio availableresources and feeds the enqueued data from the logical channel queuesLC.sub.i in each PQE 108.sub.x to one or more of the available radioresources.

In the embodiment of FIG. 3, the available radio resources comprise apool 144 of dedicated data channels (DDCHs) 148.sub.1 through 148.sub.kand a pool 152 of shared broadcast data channels (BDCHs) 156.sub.1through 156.sub.q. In system 20, DDCHs 148 and BDCHs 156 can be assigneddifferent amounts of the total capacity of radio link 40. In a presentembodiment of the disclosure, three BDCHs 156 are available in pool 152and a number, typically anywhere between twenty and eighty, of DDCHs 148can be available in pool 144 and the DDCHs 148 can have differentamounts of capacity assigned to them. The creation and deletion of DDCHs148 and the assignment and/or reassignment of DDCHs 148 is performeddynamically by system 20.

DDCHs 148 are data channels assigned to a CPE 48 for the duration of aconnection session. A DDCH 148 can only have a single CPE 48 assigned toit and as a DDCH 148 can have a variable amount of capacity (effectivelya data transmission rate) assigned to it, a CPE 48 only has one DDCH 148assigned to it. The amount of capacity assigned to a particular DDCH 148can be dynamically changed by system 20 as the requirements for thesession change and/or as the amount of overall resources required oravailable in the sector of the base station 44 change. There is someoverhead and/or delay in setting up and assigning a DDCH 148 for a CPE48 and/or resizing or tearing down such a channel.

BDCHs 156 are broadcast channels and are available whenever the basestation 44 is operating. Each CPE 48 served by a base station 44, or bya sector (a shared radio link 40) in the case of a multi-sector basestation 44, receives and monitors at least one, and typically three, ofthe BDCHs 156 in pool 152 for data addressed to the CPE 48. BecauseBDCHs 156 are broadcast channels, after start up of a base station 44there is no additional requirement or overhead to setup the BDCH channelto send data to a CPE 48. Each BDCH 156 transmits blocks of informationand can transmit blocks to any CPEs 48 receiving it by addressing theblock to the intended CPE 48. A particular embodiment of a suitable BDCH156 is described in published PCT application WO 01/91407 (to Mantha),assigned to the assignee of the present disclosure.

Suitable methods for managing the capacity resources (i.e.—admittingCPEs 48 to the network and providing capacity to them) of a base station44, or of the sectors of a multi-sector base station 44, will beapparent to those of skill in the art and are outside the scope of thepresent disclosure and will not be discussed further herein. However,the number of DDCHs 148 and their capacities and the scheduling of BDCHblocks to CPEs 48 are all factors that QoS processor 100 and RLC 140must cope with. In a present embodiment of the disclosure, the logicalchannel queues of a PQE 108.sub.x can be assigned to any two of theavailable BDCHs 156 that the destination CPE 48 is receiving and to oneof the available DDCHs 148, although as mentioned above these DDCHs 148can have different maximum data transfer rates, etc. As will be apparentto those of skill in the art, the present disclosure is not limited tobeing assigned to two BDCHs 156, nor to one DDCH 148 and in fact, havingmore than one DDCH 148 assigned permits implementation of desirablefeatures such as soft or softer hand-off between sectors or basestations wherein each downlink DDCH 148 is transmitted from a differentsector or base station 44.

RLC 140 performs the prioritization, segmentation and, if desired,traffic shaping of data packets for transmission over the availableradio resources. Specifically, RLC 140 includes a segmentation cache 160for each logical channel queue LC.sub.i in each PQE 108.sub.x. Eachsegmentation cache 160 takes the highest priority packet, at anyrespective time, from its respective logical channel queue LC.sub.i andstores it within the cache until it has been completely transmitted overone or more of BDCHs 156 or DDCHs 148. Thus, the above-mentionednon-preemptive (within the logical channel queue) scheduling of thetransmission of the highest priority packet in each logical channelqueue LC.sub.i is achieved.

RLC 140 communicates with each PQE 108.sub.x and with pool 152 and pool144 to determine the transmission requirements for the logical channelqueues and the radio resources available to serve them. RLC 140 examinesthe segmentation caches 160.sub.x.i for each PQE 108.sub.x to determinethe cached packet, or remaining portion of a packet, with the highestpriority. Pools 144 and 152 report the available capacity of each oftheir respective channels assigned to a PQE 108.sub.x to RLC 140 whichwill then select the contents of a segmentation cache 160.sub.x.1 forthe next transmission on a channel (DDCH or BDCH) assigned to that PQE108.sub.x channel.

For example, in FIG. 3 PQE 108.sub.x has both BDCHs 156.sub.1 and156.sub.q and DDCH 148.sub.1 assigned to it. Specifically, LC.sub.0 andLC.sub.15 have been assigned to DDCH 148.sub.1, LC.sub.1 has beenassigned to BDCH 156.sub.1 and LC.sub.15 has been assigned to BDCH156.sub.q. Pool 144 will report its capacity to transmit data on itsnext transmission frame to RLC 140. For example, pool 144 can reportthat DDCH 148.sub.1 has the data transmission capacity to transmittwenty-four bytes of data on the next transmission frame. Similarly,pool 152 can report to RLC 140 that BDCHs 156.sub.1 and 156.sub.q havethe data transmission capacity to transmit forty eight and ninety sixbytes of data respectively on their next transmission frames.

RLC 140 examines this reported data transmission capacity for DDCH148.sub.1 and the relative priorities of the data in segmentation caches160.sub.x.0 and 160.sub.x.15 and selects one of the two caches fortransmission, for example the data in segmentation cache 160.sub.x.0.RLC 140 then segments the data in segmentation cache 160.sub.x.0, ifnecessary, to fit within the reported data transmission capacity of DDCH148.sub.1 (i.e.—twenty four bytes in the above-mentioned example). Thissegmented data is then provided to DDCH 148.sub.1 for packaging andtransmission in the next frame.

Similarly, RLC 140 examines the reported data transmission capacitiesfor BDCHs 156.sub.1 and 156.sub.q and the contents of the segmentationcaches 160 assigned to each of these BDCHs. For each BDCH 156, RLC 140selects the assigned segmentation cache 160 whose contents have thehighest priority. RLC 140 segments the data in that segmentation cache160, if necessary, to fit within the reported data transmission capacityfor the BDCH 156 and this data is then provided to the BDCH 156 forpacking and transmission in the next frame.

As will be apparent to those of skill in the art, should the contents ofthe segmentation cache 160 with the highest priority not require all ofthe reported data transmission capacity of a DDCH or BDCH, RLC 140 canalso include another segment, from the contents of the next highestpriority segmentation cache 160 or from another packet from the samelogical channel queue which is loaded into the highest prioritysegmentation cache 160, to utilize all of the available reported datatransmission capacity. This can occur, for example, when the highestpriority cache contains the last portion of a packet to be transmittedor contains a very small packet, and the data to be transmitted is lessthan the reported data transmission capacity. If the channel underconsideration is a BDCH 156, RLC 140 can also add another segment from alogical channel queue assigned to the BDCH 156 from another PQE 108.

FIG. 5 shows a flowchart of the above-described process. As indicated atstep 200, the method considers, in turn, each and every channel to whichone or more segmentation caches 160 are assigned. At step 204, thenon-empty segmentation cache 160 of the logical channel queue with thehighest priority that is assigned to the channel under consideration isselected. At step 208, a segment of the contents of the selectedsegmentation cache 160 is formed, if necessary, to fit the datatransmission capacity reported to RLC 140 by the channel. At step 212,the segment is presented to the channel for packaging and transmission.At step 216, a check is made to see if all of the reported datatransmission capacity has been used. If all the capacity has been used,the process returns to step 200 for the next channel. If less than thetotal amount of reported data transmission capacity has been used, theprocess returns to step 204 where, if the channel under consideration isa BDCH 156, all of the logical channel queues (from any PQE 108)assigned to the BDCH 156 are considered by RLC 140 to be included as anadditional segment. If the channel under consideration is a DDCH 148,RLC 140 will consider the next highest priority data from the same PQE108 to be included as an additional segment.

This process is performed by RLC 140 for each frame transmitted frombase station 44, which can result in the contents of a differentsegmentation cache 160 being selected for the next transmission beforethe contents of another segmentation cache are completely transmitted.Thus, RLC 140 implements a preemptive scheduling method between logicalchannel queues and/or between PQE's 108.

FIG. 6 shows an example of the results of preemptive scheduling inprogress for one DDCH 148 that has at least logical channels LC.sub.0,LC.sub.2 and LC.sub.3 of a PQE 108 assigned to it. As shown in theFigure, in the frame transmitted commencing at time t.sub.0, the data inthe segmentation cache for logical channel queue LC.sub.3 is segmentedto the reported transmission capacity for DDCH 148 and is transmitted.Another segment of this data is formed and transmitted in the framecommencing transmission at time t.sub.1. While the illustration in theFigure indicates that the segments are the same size, this need not bethe case and the reported data transmission capacity can change frame toframe.

For the frame transmitted commencing at time t.sub.2, furthertransmission of the contents of logical channel queue LC.sub.3 arepreempted by the contents that have been placed into the segmentationcache for logical channel queue LC.sub.2 which RLC 140 determines have ahigher priority. Thus, in the frame commencing transmission at timet.sub.2, a segment of the contents of the segmentation cache 160 logicalchannel queue LC.sub.2 is formed for the reported data transmissioncapacity and is transmitted. For the frame commencing transmission attime t.sub.3, RLC 140 determines that the contents that have been placedin the segmentation cache 160 for logical channel queue LC.sub.0 haveyet a higher priority. Accordingly, transmission of the contents ofLC.sub.2 is preempted and a segment of logical channel queue LC.sub.0 isformed for the reported data transmission capacity and is transmitted inthe frame at time t.sub.3. As no higher priority data is found in thesegmentation caches 160 for the logical channel queues assigned to theDDCH 148 during the time periods t.sub.4 and t.sub.5, segmentation andtransmission of the remaining contents of the segmentation cache 160 forchannel queue LC.sub.0 occur at times t.sub.4 and t.sub.5 until allthree segments, representing the entire packet in the segmentation cachefor logical channel queue LC.sub.0 have been transmitted.

At time t.sub.6, RLC 140 determines the segmentation cache 160 with thehighest remaining priority for transmission. In the illustrated example,the next highest priority data is the remaining portion of the data inthe segmentation cache for logical channel queue LC.sub.2 and this datais segmented to fit the reported data transmission capacity and istransmitted in the frames commencing transmission at time t.sub.6 andt.sub.7.

At time t.sub.6, RLC 140 determines the segmentation cache with thehighest remaining priority for transmission. In the illustrated example,the next highest priority data is the remaining data in the segmentationcache 160 for logical channel queue LC.sub.3 and this data is segmentedto fit the reported transmission capacity and is transmitted in theframes commencing transmission at times t.sub.8, t.sub.9, t.sub.10 andt.sub.11 at which time the complete packet has been transmitted.

At each CPE 48, a reassembly controller 240 is provided, as illustratedin FIG. 7. Reassembly controller 240 receives data from each BDCH 156and DDCH 148 channel that are transmitted to it over radio link 40. Datareceived by reassembly controller 240 is first examined by sequencer 244that determines which, if any, existing logical channel queue LC at basestation 44 was the source of the data. Sequencer 244 will place thereceived data into the reassembly queue RQ.sub.i associated with theidentified logical channel queue LC. If sequencer 244 determines thatthe data was transmitted by a newly created logical channel queue LC atbase station 44, sequencer 244 will cause a complementary reassemblyqueue RQ.sub.i to be instantiated in reassembly controller 240 and willplace the received data therein.

Each reassembly queue RQ.sub.i examines data placed into it andreassembles the data segments into the original data packet. Oncereassembly of a packet has been completed, it is output to theappropriate data target in CPE 48 and the reassembly queue RQ.sub.i isemptied for the next received data.

If transmission of a packet from base station 44 did not requiresegmentation, the received data packet is placed into reassembly queueRQ.sub.i that then immediately outputs it.

As will be apparent to those of skill in the art, a variety oftechniques can be employed for dealing with dropped/lost packet segmentsand received erroneous packets and these techniques are outside thescope of the present disclosure and will not be described herein.

FIG. 8 shows the prioritization and queuing engine PQE 300 which runs ateach CPE 48 in system 20. PQE 300 is similar to PQE 108, although it issomewhat simpler as each CPE 48 only has access to a single uplink DDCHchannel 148 on radio link 40 to base station 44. An uplink DDCH channel148 is assigned to a CPE 48 when needed and, as mentioned above, canprovide different amounts of data transmission capacity to meet theneeds of the CPE 48 to which it is assigned. As was mentioned above,suitable methods for managing the capacity resources (i.e.—admittingCPEs 48 to the network and providing uplink capacity to them) in system20 will be apparent to those of skill in the art and are outside thescope of the present disclosure and will not be discussed furtherherein.

PQE 300 includes a network interface port 304 to which applicationsand/or processes running on the CPE 48, or the data terminals attachedto it, send the information to be transmitted to base station 44. Datareceived at port 304 is classified by classifier 308, which performs thesame functions as classifier 112, discussed above with reference to PQEs108. In the illustrated embodiment of the disclosure, each PQE 300includes sixteen logical channel queues, specifically, Lc.sub.0 throughLc.sub.15 and each logical channel queue Lc.sub.i has an appropriatepriority and set of QoS attributes defined for it. While it iscontemplated that one or more logical channel queues will be predefinedfor PQE 300, additional logical channel queues Lc.sub.i can be createdor removed, as desired, and the QoS attributes defined for each logicalchannel queue Lc.sub.i can be set and reset as required.

Each logical channel queue Lc.sub.i has an associated segmentation cache312.sub.i defined for it that performs the same functions assegmentation caches 160, discussed above with reference to PQEs 108.

Each CPE 48 also includes a radio link controller RLC 316 that operatesto receive reported data traffic capacity information from DDCH 148 andto select the segmentation cache 312.sub.i whose contents have thehighest priority for transmission. If necessary, PLC 316 will segmentthe contents of the selected cache 312.sub.i to fit the reported datatraffic capacity and will provide the data (whether segmented or not) toDDCH 148 for transmission as the next transmitted frame.

At base station 44, a reassembly controller (not shown) is provided foreach uplink DDCH 148 then assigned to a CPE 48. These reassemblycontrollers are similar to those discussed above with respect to FIG. 7,and operate to reassemble segmented packets transmitted over the DDCHs148 before forwarding the packets to their destination in base station44 or elsewhere.

As will now be apparent, the present disclosure provides QoS servicesfor data flows with wildly different requirements over a link that hastime varying capacities. The multiple logical channels queues share asingle link and yet each queue can be provided with different QoSattributes appropriate to its needs even while the data transmissioncapacity of the link changes with time. In the downlink direction, thelink can be structured into multiple channels and the logical channelqueues can be mapped to one or more of these channels. These channelscan include dedicated channels, each dedicate to a link between the basestation 44 and a CPE 48, with variable data transmission capacities andone or more channels can be broadcast channels from the base station 44to several, or all, of CPEs 48. In the uplink, the logical channelqueues are mapped to a single dedicated channel that can have a variabledata transmission capacity.

One of the advantages of the present disclosure is that it allows QoSattributes to be defined and provided on a per logical channel basiswhich allows for network resources to be used efficiently, to providedifferentiated QoS on a per data flow basis and to support QoS servicesover a wireless link. This allows, for example, the logical channel fora media connection such as a voice telephony data flow, to be definedwith attributes for segmentation prohibition, low latency and lowreliability which are suitable for such a connections, as a voice callis sensitive to latency, but can tolerate some dropped packets and itspackets are always of a known size, as required by the particular codecemployed.

In such a situation, RLC 140 will attempt to ensure that packets in sucha logical channel queue are transmitted with the required time periods(to meet the latency requirements) but without ARQ or other reliabilitytechniques being applied to it. Conversely, a file transfer, such as anftp session, between a CPE 48 and a base station 44 can be transmittedthrough a logical channel queue that has defined attributes for beinglatency tolerant, but requiring high reliability. Similarly, fax datamay be transmitted through a logical channel queue that has definedattributes for being latency intolerant and requiring high reliability,so that ARQ or other reliability techniques are applied. As mentioned,reliability techniques such as ARQ can be provided on a per logicalchannel basis. Further, less conventional attributes, such as highererror correcting coding levels or even radio transmission power levelmargins can also be defined and implemented on a per logical channelbasis. Also, other attributes such as whether and which types of headercompression to apply to a flow can be defined per flow.

Further, traffic shapers can be implemented and configured on a perlogical channel basis. This allows, for example, voice telephony data tobe transferred over link 40 as necessary, while other data types can bedata rate limited according to parameters defined by the networkoperator. Thus, a telephony call can be conducted unimpeded while a filetransfer or other large data transfer can be subject to a leaky bucket,or other traffic shaping process.

As should now be apparent to those of skill in the art, the uniqueflexibility described above is achieved with a very low overhead impacton the transmission link capacity. Transmission of segments involvesonly the addition of a small header to each segment, the headeridentifying the sending logical channel and, in the case weresegmentation of the packet has occurred, an indication of thesegmentation of the packet and the location of the segment within thefull packet.

The present disclosure provides for the efficient utilization of ashared resource, such as a radio link, in a network includingheterogeneous links. Data is arranged in flows and each flow can beprovided with its own logical channel with its own set of QoSattributes. These attributes can include prioritization, latencyrestrictions, data rate requirements, reliability requirements, etc.

The above-described embodiments are intended to be examples of thepresent invention, and alterations and modifications may be effectedthereto by those of ordinary skill in the pertinent art withoutdeparting from the scope of the invention, which is defined solely bythe issued claims.

We claim:
 1. A base station, comprising: a reassembly controlleroperable to receive, over a single dedicated channel, a plurality ofsegmented packets from a wireless subscriber station, each respectivesegmented packet of the plurality of segmented packets associated with arespective quality of service (QoS), the single dedicated channelcarrying segmented packets associated with a plurality of logicalchannel queues; operable to reassemble the plurality of segmentedpackets to form a higher layer packet; and operable to forward thehigher layer packet towards a destination.